Ý nghĩa và cài đặt Đèn báo (lập trình)

Đèn báo đếm được trang bị hai thao tác, ký hiệu là VP. Thao tác V tăng đèn báo S và thao tác P giảm nó. Ý nghĩa của chúng được giải thích bên dưới. Ngoặc vuông chỉ ra các thao tác nguyên tử, nghĩa là các thao tác không thể chia nhỏ dưới góc nhìn của các tiến trình khác.

function V(semaphore S):Atomically increment S[S ← S + 1]function P(semaphore S):repeat:Between repetitions of the loop other processes may operate on the semaphore[if S > 0:Atomically decrement S - note that S cannot become negativeS ← S - 1break]

Giá trị của đèn báo S là số đơn vị của tài nguyên còn rỗi. Thao tác P chờ đợi tích cực hoặc ngủ cho đến khi tài nguyên được bảo vệ trở nên rảnh rỗi, khi đó nó ngay lập tức yêu cầu. Thao tác V ngược lại: làm cho tài nguyên rảnh rỗi trở lại sau khi một tiến trình đã sử dụng xong.

Tài liệu tham khảo

WikiPedia: Đèn báo (lập trình) http://greenteapress.com/semaphores/ http://www.linuxgrill.com/anonymous/fire/netfilter... http://www.cs.utexas.edu/users/EWD/ewd00xx/EWD74.P... http://www.cs.utexas.edu/users/EWD/transcriptions/... http://www.cs.utexas.edu/users/EWD/transcriptions/... http://www.cs.utexas.edu/users/EWD/transcriptions/... http://www.oamk.fi/~joleppaj/personal/jleppaja_gra... http://www.opengroup.org/onlinepubs/009695399/base... https://docs.oracle.com/javase/10/docs/api/java/ut...